<?php
	//Esta clase es para simplificar el proceso de muestra de los cursos por paquete en la pagina web; no existe como entidad en la base de datos ya que todos sus atributos 
	//se pueden obtener con consultas.

	class AsignacionPaquete{
		private $paquete;
		private $cursos = array();
		private $asignacionCursos = array();
		private $nombre;
		private $estado;
		
		function __construct(){
			
		}
		//Debido a la funcionalidad basica que se hara con  esta clase 
		//las funciones de agregar y remover son muy simples 
		//pero si se requiere un uso mas complejo sera necesario hacer 
		//Algunas validaciones por referencias o identificadores
		function addCurso($curso){
			if($curso instanceof Curso){
				array_push($this->cursos,$curso);
			}
		}
		
		function removeCurso(){
			array_pop($this->cursos);
		}
		
		function addAsignacionCurso($asignacionCurso){
			if($asignacionCurso instanceof AsignacionCurso){
				array_push($this->asignacionCursos,$asignacionCurso);
			}
		}
		function removeAsignacionCurso(){
			array_pop($this->asignacionCursos);
		}
		function getAsignacionCursos(){
			return $this->asignacionCursos;
		}
		function setAsignacionCursos($asignacionCursos){
			$this->asignacionCrusos = $asignacionCursos;
		}
		function getCursos(){
			return $this->cursos;
		}
		function setPaquete($paquete){
			if($paquete instanceof Paquete){
				$this->paquete = $paquete;
			}
		}
		function getPaquete(){
			return $this->paquete;
		}
		function setCursos($cursos){
			$this->cursos = $cursos;
		}
		
		function getNombre(){
			return $this->nombre;
		}
		
		function setNombre($nombre){
			$this->nombre = $nombre;
		}
		//Los estados posibles son (I)ncompleto (C)ompleto
		//Y se refiere a que si un paquete tiene un curso sin lugares este se agrege pero ponga el estado del paquete
		//como incompleto refiriendose a que no estan completos todos los cursos de los que esta compuesto el paquete
		
		function setEstado($estado){
			$this->estado = $estado;
		}
		
		function getEstado(){
			return $this->estado;
		}
	
	}
?>